

Il existe déjà sur le marché des logiciels, plusieurs outils propriétaires qui permettent la conception et l'analyse des formulaires de \textit{QCM}. Parmi ceux-là, nous pouvons citer \textsf{E-Questionnaire}\footnote{E-questionnaire: \url{www.e-questionnaire.com}} et \textsf{Neoptec}\footnote{Neoptec:\url{http://www.neoptec.com/fr/produits/qcm-direct/presentation.php}}. Cependant, ces logiciels demeurent payant et ne sont utilisables qu'exclusivement sur Windows. Cela constitue un problème de portabilité.\\
\\
L'\textsf{Université Bordeaux 1} utilise le produit \textsf{Adobe Design} pour la conception de formulaires de \textit{QCM}. L'outil propriétaire dont dispose l'établissement est composé de trois logiciels différents.\\
Le premier qui se nomme \textsf{Axmpc} permet de créer un modèle de \textit{QCM}, et de définir les paramètres de chaque document \textit{QCM}, comme le nombre de marques horloges, le nombre et type de réponses par marque horloge. Ces marques  indiquent au lecteur optique la position des cases à cocher, le début et la fin du document. Le modèle de \textit{QCM} type ainsi généré porte l'extension \textit{.AUR}.\\ 
Le deuxième logiciel \textsf{Codesoft 6} conçoit et édite les étiquettes contenant les informations des étudiants dans le cas où le questionnaire est utilisé pour un examen de type \textit{QCM}. En effet, le lecteur optique se chargera d'associer les réponses au numéro étudiant de l'étiquette.\\
Le troisième outil \textsf{Lecteur Axiome} injecte le modèle du \textit{QCM} type dans une machine et réceptionne les résultats dans un fichier de format \textit{DAT}. Ces données seront plus tard interprétées à l'aide d'un \textit{tableur excel}.\\



Les trois logiciels que nous allons comparer, diffusés sous licence libre, sont les plus utilisés. Le principal objectif de cette analyse est de comparer ces différents outils afin d'en relever les aspects positifs et négatifs. Cela nous permet également d'une part de mieux comprendre pourquoi notre client reste insatisfait de ces logiciels, et d'autre part de nous inspirer de leurs architecltures pour produire un résultat répondant à tous les besoins de celui-ci.        


\section{Le logiciel \textsf{queXF}}

Le logiciel \textsf{queXF} développé  par l' \textbf{Australian Consortium for Social and Political Research, Incorporated}, sous la licence \textsf{GNU GPL version 2.0}\footnote{\url{http://www.gnu.org/licenses/gpl.html}} est un outil de la suite \textsf{queX} qui permet de lire des formulaires de \textit{QCM}  scannés créés généralement à l'aide de \textsf{queXML}, et d'en extraire les données nécessaires. Les données extraites sont soient des informations sur les zones du \textit{QCM} (zone de texte, zone à cocher, etc \ldots) ou tout simplement les réponses. La feuille prise en entrée par \textsf{queXF} doit  disposer, aux extrémités, de traits horizontaux et verticaux. C'est ce qui permet au logiciel de reconnaitre celle-ci.\\
 \textsf{QueXF} a été implémenté en \textsf{Python}\footnote{\url{http://www.python.org/}} et \textsf{PHP}. Il dispose d'une interface qui nécessite l'installation d'un serveur, de \textsf{ADOdb, de PHP5, MySQL5}\footnote{\url{http://adodb.sourceforge.net/} \\ \url{http://www.php.net/} \url{http://www.mysql.fr/}} et de \textsf{Ghostscript} \footnote{\url{http://pages.cs.wisc.edu/~ghost/}}. Ses sources sont disponibles sur SourceForge \footnote{Pour accéder à la forge:\url{http://sourceforge.net/projects/quexf/develop}} dont la dernière modification date du 30 septembre 2010. Il dispose aussi d'une documentation et d'une vidéo d'installation \footnote{\url{http://quexf.sourceforge.net/node/24}}.

\section{Le logiciel \textsf{SQS}} 

Le logiciel \textsf{SQS}\footnotemark
\footnotetext{\url{http://dev.sqs2.net/projects/sqs}}
\textit{(Shared Questionnaire System)} a été créé 
par le japonais \textbf{\sc Hiroya
Kulo}. \textsf{SQS} est un logiciel open source diffusé sous licence 
\textsf{Apache License,Version2.0} \footnote{\url{http://www.apache.org/licenses/}}.
\\
Il offre deux applications implémentées en \textsf{Java, JavaScript}\footnote{\url{http://www.java.com/fr/} \\ \url{http://www.javascript.com/}} et \textsf{Xslt} \footnote{\url{http://www.w3.org/TR/xslt}}. Il est également multi-plateforme grâce à la machine virtuelle \textsf{JRE6 VM}.
\\
La première application, \textsf{SourceEditor2.0}, permet de créer des modèles de \textit{QCM} alors que la deuxième, \textsf{MarkReader2.0}, utilise les formulaires de \textit{QCM} remplis et scannés pour extraire les réponses qu'ils contiennent, calculer les résultats et les présenter sous un format bien défini(\textsf{Excel, CSV, pie Chart}).
\\
La deuxième application de \textsf{SQS} nous intéresse plus que la première étant donné les contraintes et les besoins du client.
\\
Les sources\footnote{dernière mise à jour en septembre 2010} de ce logiciel sont disponibles dans la forge du site officiel 
. Cependant, les manuels d'utilisation ne sont disponibles qu'en Japonais. 

\section{Le logiciel \textsf{Udai OMR Tool}} 
Le logiciel \textsf{Udai OMR Tool}\footnotemark a été
\footnotetext{\url{http://www.cse.iitd.ernet.in/~aseth/udai/OMRProj/README.html}} 
créé par l' \textbf{Université de Waterloo}. Il a été developpé en \textsf{Java} en utilisant la bibliothèque \textit{JIU (Java Imaging Utilities)}.
\\
Il fonctionne de la manière suivante: il faut tout d'abord créer un formulaire \textit{QCM} sous \textit{Power Point} à l'aide d'un modèle prédéfini, tout en évitant de déplacer les deux cercles concentriques placés en haut et à gauche et en bas et à droite de la page. Ces deux cercles permettent de résoudre les problèmes engendrés par les éventuelles rotations que peuvent subir les copies de \textit{QCM} remplies lors de la numérisation.
\\
La deuxième étape consiste à créer un modèle de \textit{QCM} en exécutant la commande
\\
\texttt{\footnotesize > java-cp "dist/OMRProj.jar;dist/lib/jiu.jar" omrproj.ProcessTemplate [nom du }
\\ 
\texttt{\footnotesize  modèle de QCM]}\\
sur un exemplaire de \textit{QCM} où toutes les cases à cocher sont coloriées en noir. Cela génère un fichier au format \textsf{ascii (.asc)} qui représente le modèle du \textit{QCM}.

\newpage
\noindent Et enfin, une fois que les copies de \textit{QCM} remplies seront scannées au format \textit{PNG}, il suffit juste d'éxécuter la commande
\\ 
\texttt{\footnotesize > java -cp "dist/OMRProj.jar;dist/lib/jiu.jar" omrproj.ProcessForm [nom du}
\\
\texttt{\footnotesize formulaire QCM] [nom du modèle de QCM]}
\\ 
pour obtenir les résultats sauvegardés dans un fichier sous un format \textit{.dat}.    
A ce stade, le logiciel ne dispose pas d'interface graphique, tout se passe en ligne de commande.


\section{Comparaison des différents logiciels}


Avant de passer à la comparaison des différents logiciels, nous allons présenter un exemple de \textit{QCM} qui décrit les différentes zones du formulaire qui vont nous intéresser. Le calibrage représente un ensemble de marques ( ronds, traits, carrés, \ldots) présentes  sur une feuille de \textit{QCM} qui aident les différents logiciels à sauvegarder les coordonnées des zones nécessaires aux calculs des résultats du \textit{QCM}.




\begin{figure}[H]
  \includegraphics[width=16cm,height=17cm]{../Diagramme/used/sqs.png}
  \caption{Exemple des motifs d'un \textit{QCM} pour le logiciel \textsf{SQS}.}
  \label{sqs}
\end{figure}


\begin{flushleft}
\begin{table}
\begin{tabular}{|l|p{3.5cm}|p{3.5cm}|p{3.5cm}|}
\hline
Logiciel & \textbf{queXF} & \textbf{Udai OMR Tool} & \textbf{SQS}  \\
\hline
\hline
Fichier d'entrée & PDF généré de préférence par queXML & PowerPoint & PDF \\
\hline
Fichier résultat & Fichier au format DDI & Fichier en format .dat & CSV, Excel, pie Chart \\
\hline
Format de page & A4 & A4 & A4 \\
\hline
Points de marquage & 
Traits horizontaux et verticaux dans chaque coin de la page & Deux ronds dans deux coins opposés de la page. & Quatre points dans chaque coin de la page.\\
\hline
Motifs reconnus &
Un unique code à barres pour toutes les pages, des cases à cocher de type box, des zones de saisie de texte. & 
Utilise un modèle de motif unique. & 
Des zones de saisie de texte, des cases à cocher de type box. \\
\hline
Langages & Python et PHP & Java & Java, JavaScript  et Xslt \\  
\hline
Type de licence & GNU GPL version 2.0 & GNU GPL version 2.0 & Apache licence version 2.0 \\ 
\hline
\end{tabular}
\caption{Tableau comparatif des logiciels}
\label{tabComp}
\end{table}
\end{flushleft}


\section{Critique des logiciels}
 Après  l'analyse effectuée sur les différents logiciels en amont, il en ressort des  points négatifs et positifs importants. Cette analyse va permettre de mettre en évidence ces avantages et ces inconvénients et d'en tirer les conclusions nécessaires pour la réalisation de notre projet. L'analyse ne prendra pas en compte les licences. En effet, les licences \textit{GNU GPL version 2.0 et Apache Licence  Version 2.0}  sont des licences libres et ne posent donc aucun problème particulier.\\

\subsection{Fichiers}
Les différents logiciels utilisent des fichiers d'entrée au format queXML, PowerPoint ou encore PDF. Pour obtenir un fichier sous format PowerPoint on doit obligatoirement posséder une \textit{suite Microsoft}. Tandis que, le format queXML nécessite un minimum de connaissance  du langage \textsf{queXML}. Cela pose des problèmes de coût (achat de la suite Microsoft) si l'on ne peut pas télécharger  la suite Microsoft depuis une \textit{plateforme MSDNAA} ou encore un problème d'installation ou de maîtrise de logiciel(Cas du logiciel \textsf{queXML}). A cela s'ajoute des problèmes de portabilité c'est à dire la possibilité d'utiliser certains logiciels sur différentes plateformes. Par exemple, l'utilisation de powerPoint nécessite de travailler exclusivement sur Windows. Par contre, le format PDF est moins contraignant. Il est utilisable sur plusieurs plateformes (Mac OS, Unix, Windows,\ldots) et n'a pas besoin d'un logiciel particulier pour être créé ou géré. De plus, la spécificité du PDF est de préserver la mise en forme (polices d'écritures, images, objets graphiques…) telle qu'elle a été définie par son auteur, et ce quelles  que soient  l'application et la plateforme utilisées pour imprimer ou visualiser le dit fichier.\\
Les avantages et inconvénients  des fichiers résultats sont les mêmes que ceux des fichiers d'entrée.\\
Il est aussi important de noter qu'aucun de ces logiciels ne donne la possiblité de traiter un formulaire de \textit{QCM}  scanné sur plusieurs pages.

\subsection{Calibrage}
Chaque logiciel utilise des outils de reconnaissance de page différents, cela va des deux ronds, en passant par les gros points ou encore les traits horizontaux et verticaux. Les deux ronds (logiciel \textsf{Udai OMR Tool}) présents  sur deux extrémités du \textit{QCM} permettent certes d'avoir un motif de reconnaissance mais ne garantissent  pas que le modèle du \textit{QCM} est le même que les autres  modèles à comparer. En effet, avec les deux ronds le logiciel ne peut avoir qu'une vision des deux extrémités de la feuille et ne peut donc pas detecter les problèmes de géométrie. Par exemple, lorsque le fichier d'entrée est chargé, le logiciel \textsf{Udai OMR Tool} essaie de calculer la valeur de la largeur et de la longueur de la feuille en utilisant un troisième point virtuel.C'est à partir de ce calcul  que le logiciel determine la place de chaque zone sur la feuille. Lors de l'analyse du \textit{QCM} rempli, si le formulaire est différent du fichier modèle, le logiciel sera dans l'incapacité de distinguer les bonnes zones   des champs du formulaire dans la mesure où les valeurs de la largeur et de la longueur ont changés à cause de la localisation du troisième point virtuel.\\
 Les autres motifs de reconnaissance étant présents sur les quatre extremités permettent  de détecter et de régler  les problèmes de zones manquantes ou de géométrie plus facilement. Toutefois, il est important de noter que les ronds ont l'avantage de ne pas poser de grand problème lors de l'affichage. En effet, un rond vu sur différents angles ne change pas de forme ce qui n'est pas le cas des carrés par exemple. Avec les traits, le grand problème est l'alignement des points. Il faudrait arriver à detecter si l'alignement des points crées un trait droit ou incliner par rapport au modèle de \textit{QCM} de base.

\subsection{Motifs Reconnus}
 \textsf{Udai OMR Tool} ne reconnait qu'un seul motif de \textit{QCM} en entrée. Cela sous entend que l'utilisateur ne peut générer qu'un seul type de \textit{QCM} avec les mêmes caractéristiques. Cela pose un réel problème car un utilisateur peut être appelé à traiter plusieurs types de \textit{QCM} et doit ainsi pouvoir distinguer chaque type. Ce problème d'unicité se retrouve aussi au niveau de \textsf{queXF}. En effet, celui-ci ne peut reconnaître qu'un seul type de codes à barres. Cependant, un même \textit{QCM} doit pouvoir posséder  des codes à barres  différents. C'est le cas par exemple du numéro d'étudiant utilisé comme codes à barres dans le même \textit{QCM}. Ici par exemple le code à barres  permet pour un \textit{QCM} identique  de distinguer les élèves. Si le code  à barres est unique il est donc impossible de gérer ce genre de cas.

\subsection{Logiciels}
Le logiciel \textsf{queXF} peut s'avérer difficile à installer. En effet, il nécessite d'avoir installer au préalable quatre logiciels(\textsf{ADOdb, PHP5, MySQL5, GhotScript}) et un serveur (LAMP ou autre). Cela constitue une contrainte qui peut rendre l'installation du logiciel complexe en fonction de la difficulté  d'installation des différents logiciels dont il dépend.


\subsection{Les langages} 
Les logiciels sont conçus avec des langages différents et variés. Il s'agit de \textsf{PHP}, \textsf{Python}, \textsf{Java}, \textsf{Javascript} et \textsf{XSLT}. Parmi tous ces langages, \textsf{Java} se démarque. En effet, ce langage facilite la portabilité par le simple faite qu'il soit multi-plateforme. De plus, la multitude des langages pose un problème de combinaison. En effet, il est difficile de pouvoir  réutiliser des modules de différents langages ensemble. On peut aussi envisager pour chaque bibliothèque utilisé dans un langage donné, de chercher  son équivalent dans un autre. 


\subsection{Synthèse}
De cette analyse découle le fait qu'il est impossible de réutiliser toutes les fonctionnalités d'un logiciel en paticulier. Cependant, il est plus judicieux de récupérer dans chaque logiciel des fonctionnalités utiles permettont de répondre aux besoins et spécifications du client. Il faudrait que le logiciel prenne comme fichier d'entrée ou fichier de modèle un \textit{PDF}. \\
Pour ce faire, il faudra peut être récupérer toutes les méthodes du logiciel \textsf{SQS} qui traitent de ce cas. De plus, il est plus intéressant de doter le logiciel d'au moins trois  motifs de reconnaissance de fichier pour le calibrage et de permettre aux \textit{QCM} de disposer de plusieurs pages et de codes à barres différents. Cela permettra d'une part de donner la possibilité à l'utilisateur de ne pas limiter la taille de son \textit{QCM} mais aussi de mettre des distinctions particulières pour le même type de \textit{QCM}. Pour permettre à notre logiciel d'être portable sur différentes plateformes, le logiciel sera peut être implémenté en \textsf{Java}.

